winsafe\winusb\handles/hfile.rs
1#![allow(non_snake_case)]
2
3use crate::decl::*;
4use crate::kernel::privs::*;
5use crate::prelude::*;
6use crate::winusb::ffi;
7
8impl HFILE {
9 /// [`WinUsb_Initialize`](https://learn.microsoft.com/en-us/windows/win32/api/winusb/nf-winusb-winusb_initialize)
10 /// function.
11 #[must_use]
12 pub fn WinUsbInitialize(&self) -> SysResult<WinUsbFreeGuard> {
13 let mut handle = HUSB::NULL;
14 unsafe {
15 BoolRet(ffi::WinUsb_Initialize(self.ptr(), handle.as_mut()))
16 .to_sysresult()
17 .map(|_| WinUsbFreeGuard::new(handle))
18 }
19 }
20}